package week8;

/**
 *
 * 191. 位1的个数
 * https://leetcode-cn.com/problems/number-of-1-bits/
 *
 * 执行结果：  通过  显示详情
 *
 * 添加备注
 * 执行用时：0 ms, 在所有 Java 提交中击败了100.00% 的用户
 * 内存消耗：35.5 MB, 在所有 Java 提交中击败了12.36% 的用户
 * 通过测试用例：601 / 601
 * 炫耀一下:
 *
 *
 */
public class Week8NumberOf1Bits {

    public int hammingWeight(int n) {
        int bitNum = 0;
        for(; n != 0;) {
            // n & (n - 1) 可以把二进制 最低位的 1 变成 0, 如果最后 n 为 0 则结束
            n &= n - 1;
            bitNum ++;
        }
        return bitNum;
    }
}
